package com.qidian.mes.qc.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.qidian.mes.pojo.Template;
import com.qidian.mes.qc.mapper.TemplateMapper;
import com.qidian.mes.qc.service.TemplateService;
import com.qidian.mes.util.pojo.MESResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TemplateServiceImpl implements TemplateService {

    @Autowired
    private TemplateMapper templateMapper;
    @Override
    public MESResult queryById(Long templateId) {
        Template template=null;
        if ((template=templateMapper.selectByTemplateId(templateId))!=null){
            return  MESResult.ok(template);
        }
        return MESResult.empty();
    }

    @Override
    public MESResult list(int page, int limit, Template template) {
        //开启分页
        PageHelper.startPage(page,limit);
        List<Template> list=templateMapper.list(template);
        //组织分页对象
        PageInfo<Template> pageInfo=new PageInfo<>(list);
        return MESResult.ok(pageInfo);
    }

    @Override
    public MESResult save(Template template) {
        //查重
        if (templateMapper.selectAllByTemplateName(template.getTemplateName())!=null ){
            return MESResult.duplicate("模版名重复");
        }
        templateMapper.save(template);
        return MESResult.ok();
    }

    @Override
    public MESResult update(Template template) {
        //校验是否重复
        Template temp=templateMapper.selectAllByTemplateName(template.getTemplateName());
        if(temp !=null && ! temp.getTemplateId().equals(template.getTemplateId())){
            return  MESResult.duplicate("模版名重复");
        }
        templateMapper.update(template);
        return MESResult.ok();
    }

    @Override
    public MESResult deleteByTemplateId(Long templateId) {

        templateMapper.deleteByTemplateId(templateId);
        return MESResult.ok();
    }

    @Override
    public MESResult deletesByTemplateId(Long[] templateId) {
        int  count = templateMapper.deletesByTemplateId(templateId);
        return  MESResult.ok(count+"");

    }
}
